import XtxConfirm from './xtx-confirm.vue'
import {
    createVNode,
    render
} from 'vue'
// 准备comfirm组件所渲染dom
const div = document.createElement('div')
div.setAttribute('class', 'xtx-confirm-container')
document.body.appendChild(div)
export default ({
    title,
    text
}) => {
    return new Promise((resolve, reject) => {
        // 定义确认函数
        const submitCallback = () => {
            // 销毁组件
            render(null, div)
            resolve() // then捕获
        }
        const cancelCallback = () => {
            // 销毁组件
            render(null, div)
            reject(new Error('点击取消')) // catcha捕获
        }

        // 创建虚拟节点：第一个参数是组件，第二个参数是传递到组件中props对象
        const vnode = createVNode(XtxConfirm, {
            title,
            text,
            submitCallback,
            cancelCallback
        })

        // 创建组件
        render(vnode, div)
    })
}